import { createApp, h } from "vue";
import App from "./App.vue";
import antd from "ant-design-vue";
import "ant-design-vue/dist/antd.css";
import zh_CN from "ant-design-vue/es/locale/zh_CN";
import { ConfigProvider } from "ant-design-vue";

const app = createApp({
    render() {
        return h(ConfigProvider, { locale: this.zh_CN }, () => [h(App)]);
    },
    data() {
        return { zh_CN: zh_CN };
    },
});
// ];

// var LinkBlock = [
//     { formId: "058515910774785", toId: "058515906580480", FromKey: null, toKey: "Height" },
//     { formId: "058515910774784", toId: "058515906580480", FromKey: null, toKey: "VaporPressure" },
//     { formId: "058515906580480", toId: "058515910774786", FromKey: null, toKey: null },
// ];

// var BlockMapping = {};

// for (let i = 0; i < DataBlock.length; i++) {
//     const element = DataBlock[i];
//     BlockMapping[element.id] = element;
//     element.From = [];
//     element.To = [];
//     element.FromStateMapping = {}
// }

// for (let i = 0; i < LinkBlock.length; i++) {
//     const element = LinkBlock[i];
//     element.from = BlockMapping[element.formId];
//     element.to = BlockMapping[element.toId];
//     BlockMapping[element.formId].To.push(element);
//     BlockMapping[element.toId].From.push(element);
//     BlockMapping[element.toId].FromStateMapping[element.formId] = false;
// }

// // 取值
// function GetValue(Value, Str) {
//     var _arr = Str.split(".");
//     _arr.unshift(Value);
//     return _arr.reduce((p, n) => {
//         return p[n];
//     });
// }

// // 赋值
// function SetValue(Value, Str, val) {
//     var _arr = Str.split(".");
//     _arr.unshift(Value);
//     return _arr.reduce((p, n, index) => {
//         if (index == _arr.length - 1) {
//             p[n] = val;
//         }
//         return p[n];
//     });
// }

// function SendValue(element) {
//     var FormValue = element.value;
//     for (let i = 0; i < element.To.length; i++) {
//         const config = element.To[i];
//         const toObj = config.to;
//         var _FromV = config.FromKey ? GetValue(FormValue, config.FromKey) : FormValue;
//         if (config.toKey) {
//             SetValue(toObj.value, config.toKey, _FromV);
//         } else {
//             toObj.value = _FromV;
//         }
//         toObj.FromStateMapping[element.id] = true
//         var isNext = true;
//         for (const key in toObj.FromStateMapping) {
//             const element = toObj.FromStateMapping[key];
//             if (!element) {
//                 isNext = false;
//                 break;
//             }
//         }
//         SendValue(toObj)
//     }
// }

// for (const key in BlockMapping) {
//     if (BlockMapping[key].From.length == 0) {
//         var element = BlockMapping[key];
//         SendValue(element)
//     }
// }


// console.log(DataBlock);
// //1.深度优先遍历的递归写法
// function deepTraversal(node) {
//     let nodes = []
//     if (node != null) {
//         nodes.push[node]
//         let childrens = node.children
//         for (let i = 0; i < childrens.length; i++) deepTraversal(childrens[i])
//     } return nodes
// }
// // 2.深度优先遍历的非递归写法
// function deepTraversal(node) {
//     let nodes = []
//     if (node != null) {
//         let stack = []
//         //同来存放将来要访问的节点
//         stack.push(node)
//         while (stack.length != 0) {
//             let item = stack.pop()
//             //正在访问的节点
//             nodes.push(item)
//             let childrens = item.children
//             for (let i = childrens.length - 1; i >= 0; i--) stack.push(childrens[i])
//             //将现在访问点的节点的子节点存入 stack，供将来访问
//         }
//     }
//     return nodes
// }
// // 3.广度优先遍历的递归写法
// function wideTraversal(node) {
//     let nodes = [],
//         i = 0
//     if (node != null) {
//         nodes.push(node)
//         wideTraversal(node.nextElementSibling)
//         node = nodes[i++]
//         wideTraversal(node.firstElementChild)
//     }
//     return nodes
// }
// //4.广度优先遍历的非递归写法
// function wideTraversal(node) {
//     let nodes = [], i = 0;
//     while (node != null) {
//         nodes.push(node)
//         node = nodes[i++]
//         let childrens = node.children
//         for (let i = 0; i < childrens.length; i++) {
//             nodes.push(childrens[i])
//         }
//     }
//     return nodes
// }
